1. Field of the Invention
The present invention relates to a cooperation system for executing a cooperation process among dispersed objects, and more particularly, the present invention relates to a cooperation system which executes a process so that an individual computer system, or an individual application program running in the computer system, reacts by itself to various pieces of information flowing through communication paths defined as a common field.
2. Description of the Related Art
The recent introduction of network systems into various fields has resulted in an increase in the use of network systems having a plurality of objects dispersed on the network that are executing in cooperation with each other. As a result, research and development in the area has continued to be directed toward developing an object-oriented programming and component technique for executing a cooperation system process through the cooperation of a plurality of objects.
For example, a common specification, known as the Common Object Request Broker: Architecture and Specification (xe2x80x9cCORBAxe2x80x9d) for dispersed object operation specified by a business field organization Object Management Group (xe2x80x9cOMGxe2x80x9d) has been established, and is directed to the standardization and popularization of object-oriented technology.
An example of object cooperation in a client/server system based on a CORBA interface 1201 is illustrated in FIG. 22. In this object cooperation system, both a client application 1211 and a server application 1221 correspond to objects, and the object cooperation system executes a series of processes through object cooperation of client application 1211 and server application 1221.
An application developer describes an interface of the service offered by respective client application 1211 and server application 1221 with an Interface Definition Language (xe2x80x9cIDLxe2x80x9d) 1202. Content that is defined as the interface is an operation group which can be requested for an object, and for each operation, an operation name, definition of parameter, definition of return value, exceptional process when an error is generated, and additional information are also defined.
A stub 1212 is produced for a client 121, and a skeleton 1222 is produced for a server 122, by compiling the content defined by IDL; 1202 with an exclusive compiler. Stub 1212 is a routine group for providing access to an operation group defined by IDL 1202 to the client application 1211. The client application 1211 calls the routine offered by stub 1212 to start the operation. Skeleton 1222 provides a dispatch routine to a method routine offered by server application 1221.
Stub 1212 and skeleton 1222 are produced by a programming language used in the corresponding client application 1211 or server application 1221. For example, if C language is used as the programming language, stub 1212 is produced as a function group of C language. Client application 1211 calls the relevant routine of the server application via stub 1212, an ORB run time 1203 and skeleton 1222 by calling the function corresponding to the operation to be executed. After execution of the predetermined process, the processing result is returned to client application 1211 as the call originator.
While it is rather easy to establish an object cooperation process with CORBA, etc., when establishment of the object cooperation process is attempted, it is necessary to understand CORBA in order to both design the object according to specifications of CORBA, and to define the object using the IDL. In this way, it is essential for a person who attempts to establish the system to fully understand the application method.
Moreover, it is also necessary for a user to be intensively aware of the relationship of respective objects. For example, a user must initially clarify a process that is to be executed by each of the respective objects, for example client application 1211 and server application 1221, and must define a parameter that should be used to execute the process.
The independence of each object has been enhanced by common use of the interface between the objects, but there is a consistent precondition that a fixed relationship exist between the objects. But such a fixed relationship does not serve to enhance the amount of freedom cooperation of the system that is most desired. For example, when two people communicate with each other, there are uncertain exchanges of words that are often generated. For instance, when an attempt is made to solve a problem, a scheme for solving the problem is derived, for example, by either thinking of ways to solve the problem, or by asking another person for suggestions on how to solve the problem. Even in the case where a solution to the problem is discovered, investigations have usually been performed from various points of views. When a person asks for suggestions from another person, the inquiry is made either to a particular person, or to many people in a wide area. When a person asks for suggestions from many people in a wide area, reactions will usually differ from person to person. A person will offer a suggestion by making judgments based on both experience and knowledge, and therefore the solution may not be the most direct means for solving the problem. If the person is generally not interested in the particular problem, he or she may not attempt to make a complete inquiry into the problem, or may ignore certain factors. In this way, whether a person reacts to certain information differs, depending on the condition of a person who has received such information. Moreover, when a person does react to the information, the reaction also differs depending on to the condition of the person receiving the information.
When a human being is replaced with an object, the desired relationship between objects is one of free cooperation, in which respective objects receive or do not receive the information transmitted, and where the process to be executed in response to the information received is different. In the cooperation method of the related prior art, the relationship between objects is fixed as a consistent precondition, and therefore it has been difficult to establish a cooperation system having such free relationships.
It is therefore an object of the present invention to provide an enhanced amount of freedom of cooperation between objects connected to a network.
Objects of the invention are achieved by a network system that connects a plurality of computers, in which each of the plurality of computers a transmitting section to transmit messages. In addition, each computer includes a monitoring section to monitor predetermined information of the transmitted messages, a reaction table to indicate correspondence between the transmitted messages, and an executable program that processes the predetermined information. Each of the computers individually sets information to which the computer should respond in the monitoring section, and receives a message to execute processing by making reference to the reaction table when information to which the computer should respond is detected.
Objects of the invention are achieved by an object cooperation system for executing processing in cooperation between a plurality of objects connected by a common communication path. The object cooperation system includes an information transmitting section to produce to information in a predetermined format and to transmit the information to the common communication path. An information reaction table specifies transmitted information to which a response is made and defines a processing content to be executed for the response, and an information detecting section detects the transmitted information. The information detecting section retrieves the information reaction table when transmitted information is detected, identifies whether the detected transmitted information is specified, and executes the processing content when the transmitted information is specified.
Objects of the invention are achieved by a method for processing in cooperation in a network which includes detecting information transmitted to a common communication path, determining information to which a response is to be made, selecting a processing content to be executed in the response, and issuing a command to initiate execution of the selected processing content.